package com.salelogistics.sale.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.salelogistics.common.core.annotation.Excel;
import com.salelogistics.common.core.web.domain.BaseEntity;

/**
 * 月配送计划对象 sms_delivery_plan
 *
 * @author Hu Kangying
 * @date 2023-07-13
 */
public class SmsDeliveryPlan extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 计划单号
     */
    private String planId;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;

    /**
     * 桥段
     */
    @Excel(name = "桥段")
    private Long lotSection;

    /**
     * 施工单位
     */
    @Excel(name = "施工单位")
    private Long buildUnitId;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contacts;

    /**
     * 联系人电话
     */
    @Excel(name = "联系人电话")
    private String contactsTel;

    /**
     * 运输地址
     */
    @Excel(name = "运输地址")
    private String transportAddr;

    /**
     * 供应合同
     */
    @Excel(name = "供应合同")
    private Long contractId;

    /**
     * 计划月份
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划月份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planMonth;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String released;

    /**
     * 到货点
     */
    @Excel(name = "到货点")
    private String deliveryPoint;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private Long editedBy;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date editedTime;

    /**
     * 删除状态
     */
    @Excel(name = "删除状态")
    private Long isDeleted;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    private Long reviewedBy;

    /**
     * 审核状态
     */
    @Excel(name = "审核状态")
    private Long reviewedStatus;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewedTime;

    /**
     * 启用状态
     */
    @Excel(name = "启用状态")
    private Long status;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String note;

    public void setPlanId(String planId) {
        this.planId = planId;
    }

    public String getPlanId() {
        return planId;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setLotSection(Long lotSection) {
        this.lotSection = lotSection;
    }

    public Long getLotSection() {
        return lotSection;
    }

    public void setBuildUnitId(Long buildUnitId) {
        this.buildUnitId = buildUnitId;
    }

    public Long getBuildUnitId() {
        return buildUnitId;
    }

    public void setContactsId(String contactsId) {
        this.contacts = contactsId;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContactsTel(String contactsTel) {
        this.contactsTel = contactsTel;
    }

    public String getContactsTel() {
        return contactsTel;
    }

    public void setTransportAddr(String transportAddr) {
        this.transportAddr = transportAddr;
    }

    public String getTransportAddr() {
        return transportAddr;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public Long getContractId() {
        return contractId;
    }

    public void setPlanMonth(Date planMonth) {
        this.planMonth = planMonth;
    }

    public Date getPlanMonth() {
        return planMonth;
    }

    public void setReleased(String released) {
        this.released = released;
    }

    public String getReleased() {
        return released;
    }

    public void setDeliveryPoint(String deliveryPoint) {
        this.deliveryPoint = deliveryPoint;
    }

    public String getDeliveryPoint() {
        return deliveryPoint;
    }

    public void setEditedBy(Long editedBy) {
        this.editedBy = editedBy;
    }

    public Long getEditedBy() {
        return editedBy;
    }

    public void setEditedTime(Date editedTime) {
        this.editedTime = editedTime;
    }

    public Date getEditedTime() {
        return editedTime;
    }

    public void setIsDeleted(Long isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Long getIsDeleted() {
        return isDeleted;
    }

    public void setReviewedBy(Long reviewedBy) {
        this.reviewedBy = reviewedBy;
    }

    public Long getReviewedBy() {
        return reviewedBy;
    }

    public void setReviewedStatus(Long reviewedStatus) {
        this.reviewedStatus = reviewedStatus;
    }

    public Long getReviewedStatus() {
        return reviewedStatus;
    }

    public void setReviewedTime(Date reviewedTime) {
        this.reviewedTime = reviewedTime;
    }

    public Date getReviewedTime() {
        return reviewedTime;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getNote() {
        return note;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("planId", getPlanId())
                .append("projectName", getProjectName())
                .append("lotSection", getLotSection())
                .append("buildUnitId", getBuildUnitId())
                .append("contactsId", getContacts())
                .append("contactsTel", getContactsTel())
                .append("transportAddr", getTransportAddr())
                .append("contractId", getContractId())
                .append("planMonth", getPlanMonth())
                .append("releasedBy", getReleased())
                .append("deliveryPoint", getDeliveryPoint())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("editedBy", getEditedBy())
                .append("editedTime", getEditedTime())
                .append("isDeleted", getIsDeleted())
                .append("reviewedBy", getReviewedBy())
                .append("reviewedStatus", getReviewedStatus())
                .append("reviewedTime", getReviewedTime())
                .append("status", getStatus())
                .append("note", getNote())
                .toString();
    }
}
